/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ares.service.action;

import com.ares.service.bean.BeanAcciones;
import com.ares.service.bean.BeanCualificaciones;
import com.ares.service.bean.BeanIntegral;
import com.ares.service.bean.BeanMeta;
import com.ares.service.bean.BeanMovilidad;
import com.ares.service.bean.BeanObjetivo;
import com.ares.service.bean.BeanPilar;
import com.ares.service.bean.BeanPlanAccion;
import com.ares.service.bean.BeanUsuario;
import com.ares.service.servicio.PaqueteBusinessDelegate;
import com.ares.service.servicio.UsuarioSapService_I;
import com.ares.service.util.Constantes;
import com.ares.service.util.EnviarCorreo;
import com.ares.service.util.Util;
import com.ares.service.util.XmlTool;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.html.HtmlWriter;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.rtf.RtfWriter2;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import javax.servlet.http.HttpSession;

public class AjaxAction extends DispatchAction {

    public String setDescIObj(String var) {
        String[] indice = var.split("\\.");
        int newindice = Integer.parseInt(indice[1]);
        newindice++;
        return indice[0] + "." + newindice;
    }

    public String setid(String var) {
        int id = Integer.parseInt(var.substring(1, var.length()));
        id++;
        return (var.substring(0, 1) + "" + id).trim();
    }

    public String setDescImeta(String var) {
        String[] indice = var.split("\\.");
        int newindice = Integer.parseInt(indice[2]);
        newindice++;
        return indice[0] + "." + indice[1] + "." + newindice;
    }

    public boolean SuperoCantidadObjetivosXPilar(List<BeanObjetivo> lstObjetivo, String idPilar) {
        int cont = 0;
        for (BeanObjetivo obj : lstObjetivo) {
            if (obj.getStridpilar().equals(idPilar)) {
                cont++;
            }
        }
        return (cont >= Constantes.CANT_OBJETIVOS) ? true : false;
    }

    public ActionForward ValidarCantidadOBJT(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        String id = request.getParameter("id");
        HttpSession session = request.getSession();
        List<BeanObjetivo> lstObjetivo = new ArrayList<BeanObjetivo>();
        lstObjetivo = (List<BeanObjetivo>) session.getAttribute("lstObjetivo");
        PrintWriter imp = response.getWriter();
        String sbout = "";
        response.setContentType("text/xml");
        if (SuperoCantidadObjetivosXPilar(lstObjetivo, id)) {
            sbout = XmlTool.ConstruirMensaje("1-No se puede Crear más de " + Constantes.CANT_OBJETIVOS + " Objetivos");

        } else {
            sbout = XmlTool.ConstruirMensaje("0-");
        }

        imp.print(sbout);
        return null;
    }

    public ActionForward agregarObjetivo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        String id = request.getParameter("id");
        String desObj = request.getParameter("desObj");
        String idUsu = request.getParameter("idUsu");
//        String tipo = request.getParameter("tipo");
        String strtempdesObj = desObj;
        desObj = validarCaracteres(desObj);
        HttpSession session = request.getSession();
        List<BeanObjetivo> lstObjetivo = new ArrayList<BeanObjetivo>();
        lstObjetivo = (List<BeanObjetivo>) session.getAttribute("lstObjetivo");
        if (lstObjetivo == null) {
            lstObjetivo = new ArrayList<BeanObjetivo>();
        }

        String strid = "";
        String strd_i = "";

        BeanObjetivo obj = new BeanObjetivo();

        for (BeanObjetivo o : lstObjetivo) {
            if (o.getStridpilar().equals(id)) {
                strid = o.getStridobjetivo();
                strd_i = o.getStrDesc_indice();
            }
        }

//deo de enviarle el id para uqe arme el indice no debo enviarle el indice anterior weno solo el ultimo valor 
        if (!strid.equals("")) {
            obj.setStridpilar(id);
            obj.setStridobjetivo(setid(strid));
            obj.setStrDesc_indice(setDescIObj(strd_i));
            obj.setStrdesobjetivo(desObj);
            obj.setStrIdUsuario(idUsu);
            obj.setIntflag_org(0);
        } else {
            strid = construirIDObj(id);
            int intpilar = Integer.parseInt(id.substring(1, id.length()));
            strd_i = intpilar + ".1";
            obj.setStridpilar(id);
            obj.setStridobjetivo(strid);
            obj.setStrDesc_indice(strd_i);
            obj.setStrdesobjetivo(desObj);
            obj.setStrIdUsuario(idUsu);
            obj.setIntflag_org(0);
        }

        lstObjetivo.add(obj);
        session.setAttribute("lstObjetivo", lstObjetivo);

        BeanObjetivo tempobj = new BeanObjetivo();
        tempobj.setStridpilar(obj.getStridpilar());
        tempobj.setStridobjetivo(obj.getStridobjetivo());
        tempobj.setStrDesc_indice(obj.getStrDesc_indice());
        tempobj.setStrdesobjetivo(strtempdesObj);
        tempobj.setStrIdUsuario(obj.getStrIdUsuario());
        tempobj.setIntflag_org(obj.getIntflag_org());

        PrintWriter imp = response.getWriter();
        response.setContentType("text/xml");
        String sbout = XmlTool.crearObjetivo(tempobj);
        imp.print(sbout);
        return null;
    }

    public String construirIDObj(String ids) {
        int intpilar = Integer.parseInt(ids.substring(1, ids.length()));
        String idmeta = "O" + intpilar + "001";
        return idmeta;
    }

    public String construirIDMeta(String[] ids) {
        int intpilar = Integer.parseInt(ids[0].substring(1, ids[0].length()));
        int intobj = Integer.parseInt(ids[1].substring(2, ids[0].length()));
        String idmeta = "M" + intpilar + "" + intobj + "01";
        return idmeta;
    }

    public ActionForward agregarMeta(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        String[] id = request.getParameter("id").split("-");
        String meta = request.getParameter("meta");
        String acep = request.getParameter("acep");
        String mejor = request.getParameter("mejor");
        String exce = request.getParameter("exce");
        String idUsu = request.getParameter("idUsu");
        HttpSession session = request.getSession();

        String strmetatemp = meta;
        String straceptemp = acep;
        String strmejoratemp = mejor;
        String strexcetemp = exce;

//	        System.out.println("meta: " + meta);
//	        System.out.println("acep: " + acep);
//	        System.out.println("mejor: " + mejor);
//	        System.out.println("exce: " + exce);
        
        meta = validarCaracteres(meta);
        acep = validarCaracteres(acep);
        mejor = validarCaracteres(mejor);
        exce = validarCaracteres(exce);

//	        System.out.println("meta: " + meta);
//	        System.out.println("acep: " + acep);
//	        System.out.println("mejor: " + mejor);
//	        System.out.println("exce: " + exce);
        
        List<BeanMeta> lstMeta = new ArrayList<BeanMeta>();
        lstMeta = (List<BeanMeta>) session.getAttribute("lstMetas");
        if (lstMeta == null) {
            lstMeta = new ArrayList<BeanMeta>();
        }

        String strid = "";
        String strd_i = "";
        BeanMeta m = new BeanMeta();
        for (BeanMeta mt : lstMeta) {
            if (mt.getStridobjetivo().equals(id[1])) {
                strid = mt.getStridmeta();
                strd_i = mt.getStrDesc_indice();
            }
        }

        if (!strid.equals("")) {
            m.setStridobjetivo(id[1]);
            m.setStridpilar(id[0]);
            m.setStridmeta(setid(strid));
            m.setStrdesmeta(meta);
            m.setStraceptable(acep);
            m.setStrmejorado(mejor);
            m.setStrexcelente(exce);
            m.setStrDesc_indice(setDescImeta(strd_i));
            m.setStridUsuario(idUsu);
            m.setIntflag_org(0);
        } else {
            strid = construirIDMeta(id);
            List<BeanObjetivo> lstObj = (List<BeanObjetivo>) session.getAttribute("lstObjetivo");
            strd_i = getObjXID(lstObj, id) + ".1";

            m.setStridobjetivo(id[1]);
            m.setStridpilar(id[0]);
            m.setStridmeta(strid);
            m.setStrdesmeta(meta);
            m.setStraceptable(acep);
            m.setStrmejorado(mejor);
            m.setStrexcelente(exce);
            m.setStrDesc_indice(strd_i);
            m.setStridUsuario(idUsu);
            m.setIntflag_org(0);
        }

        lstMeta.add(m);

        PrintWriter imp = response.getWriter();
        response.setContentType("text/xml");

        BeanMeta tempMeta = new BeanMeta();
        tempMeta.setStridobjetivo(m.getStridobjetivo());
        tempMeta.setStridpilar(m.getStridpilar());
        tempMeta.setStridmeta(m.getStridmeta());
        tempMeta.setStrdesmeta(strmetatemp);
        tempMeta.setStraceptable(straceptemp);
        tempMeta.setStrmejorado(strmejoratemp);
        tempMeta.setStrexcelente(strexcetemp);
        tempMeta.setStrDesc_indice(m.getStrDesc_indice());
        tempMeta.setStridUsuario(m.getStridUsuario());
        tempMeta.setIntflag_org(m.getIntflag_org());

        String sbout = XmlTool.crearMeta(tempMeta);
        imp.print(sbout);

        session.setAttribute("lstMetas", lstMeta);

        return null;
    }

    public String getObjXID(List<BeanObjetivo> lstobj, String[] str) {
//        int cont = 1;
        String indiceOBJ = "n.n";
        for (BeanObjetivo b : lstobj) {
            if (b.getStridpilar().equals(str[0]) && b.getStridobjetivo().equals(str[1])) {
                indiceOBJ = b.getStrDesc_indice();
            }
        }
        return indiceOBJ;
    }

    public ActionForward fillvalorMeta(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
//        System.out.println("Ajax Action");
        String[] id = request.getParameter("id").split("-");

        HttpSession session = request.getSession();
        double valor = Double.parseDouble(request.getParameter("valor"));
        double peso = Double.parseDouble(request.getParameter("peso"));

//        System.out.println("Valor " + valor);
//        System.out.println("peso " + peso);
        
        List<BeanMeta> lstMeta = new ArrayList<BeanMeta>();
        lstMeta = (List<BeanMeta>) session.getAttribute("lstMetas");

        if (lstMeta == null) {
            lstMeta = new ArrayList<BeanMeta>();
        }
        if (lstMeta.size() > 0) {
            for (BeanMeta m : lstMeta) {

                if (m.getStridobjetivo().equals(id[1])) {
                    if (m.getStridmeta().equals(id[2])) {
                        m.setDblvalor(valor);
                        m.setDblCalc(peso);
                        break;
                    }
                }
            }
        }
        session.setAttribute("lstMetas", lstMeta);
        return null;
    }

    //Para ingresar el valor del combo y setear el valor Total
    public ActionForward fillEvaluacionMeta(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    	//System.out.println("fillEvaluacionMeta1");
    	if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
    	
        String id = request.getParameter("id");
        HttpSession session = request.getSession();
        String evaluacion = request.getParameter("valor");
        String total = request.getParameter("total");
        List<BeanMeta> lstMeta = new ArrayList<BeanMeta>();
        lstMeta = (List<BeanMeta>) session.getAttribute("lstMetas");
        if (lstMeta == null) {
            lstMeta = new ArrayList<BeanMeta>();
        }
        if (lstMeta.size() > 0) {
            for (BeanMeta m : lstMeta) {
                    if (m.getStridmeta().equals(id)) {
                        m.setStrEvaluacion(evaluacion);
                        m.setStrTotal(total);
                        break;
                    }
            }
        }
        session.setAttribute("lstMetas", lstMeta);
        System.out.println("Fin fillEvaluacionMeta");
        return mapping.findForward("MievaluacionObjetivos");
    }

    public ActionForward fillvalorObj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        String[] id = request.getParameter("id").split("-");
        HttpSession session = request.getSession();
        double valor = Double.parseDouble(request.getParameter("valor"));
        List<BeanObjetivo> lstobj = new ArrayList<BeanObjetivo>();
        lstobj = (List<BeanObjetivo>) session.getAttribute("lstObjetivo");

        if (lstobj == null) {
            lstobj = new ArrayList<BeanObjetivo>();
        }

        if (lstobj.size() > 0) {
            for (BeanObjetivo o : lstobj) {
                if (o.getStridobjetivo().equals(id[1])) {
                    o.setDblvalor(valor);
                    break;
                }
            }
        }
        
        session.setAttribute("lstObjetivo", lstobj);
        return null;
    }

    public ActionForward fillvalorPilar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        String id = request.getParameter("id");
        HttpSession session = request.getSession();
        double valor = Double.parseDouble(request.getParameter("valor"));
        List<BeanPilar> lstpilar = new ArrayList<BeanPilar>();
        lstpilar = (List<BeanPilar>) session.getAttribute("lstpilares");
        if (lstpilar == null) {
            lstpilar = new ArrayList<BeanPilar>();
        }
        if (lstpilar.size() > 0) {
            for (BeanPilar p : lstpilar) {
                if (p.getStrCod().equals(id)) {
                    p.setDblValor(valor);
                    break;
                }
            }
        }
        session.setAttribute("lstpilares", lstpilar);
        return null;
    }

    public String validarCaracteres(String strcaract) {
        String newcaract = "";
        newcaract = strcaract.replace("A3523", Constantes.A3523); // #
        newcaract = newcaract.replace("A3725", Constantes.A3725); // %
        newcaract = newcaract.replace("A432B", Constantes.A432B); // +
        newcaract = newcaract.replace("A3836", Constantes.A3836); // &
        newcaract = newcaract.replace("A603C", Constantes.A603C); // <
        newcaract = newcaract.replace("A623E", Constantes.A623E); // >
        return newcaract;
    }

    public ActionForward imprimir(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        response.setContentType("application/pdf");
        String presentationtype = response.getContentType().split("/")[1];
        Document document = new Document();
        try {
            if ("pdf".equals(presentationtype)) {
                response.setContentType("application/pdf");
                PdfWriter.getInstance(document, response.getOutputStream());
            } else if ("html".equals(presentationtype)) {
                response.setContentType("text/html");
                HtmlWriter.getInstance(document,
                        response.getOutputStream());
            } else if ("rtf".equals(presentationtype)) {
                response.setContentType("text/rtf");
                RtfWriter2.getInstance(document,
                        response.getOutputStream());
            } else {
                response.sendRedirect("http://itextdocs.lowagie.com/tutorial/");
                return null;
            }

            document.open();
            document.add(new Paragraph("Hello World"));
            document.add(new Paragraph(new Date().toString()));
            response.setHeader("Content-Disposition",
                    " inline; filename=my.pdf");
        } catch (DocumentException de) {
            de.printStackTrace();
            System.err.println("document: " + de.getMessage());
        }
        document.close();
        return null;
    }

    //FUNCIONES PARA LA EVALUACION DE COMPETENCIAS
    public ActionForward llenarTextoCompetencia(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        System.out.println("Inicio llenarTextoCompetencia");
        HttpSession session = request.getSession();
        String[] id = request.getParameter("id").split("-");      
        String texto = request.getParameter("texto");
        int tipo = Integer.parseInt(request.getParameter("tipo"));
        texto = validarCaracteres(texto);
        List<BeanCualificaciones> lstcuali = new ArrayList<BeanCualificaciones>();
        lstcuali = (List<BeanCualificaciones>) session.getAttribute("lstCuali");
        if(tipo == 1){ //TENGO QUE LLENAR LA JUSTIFICACION DEL COLABORADOR
            for (BeanCualificaciones c : lstcuali) {
                if (c.getStrID_Pilar_QK().equals(id[0]) && c.getStrid_Cualif_Q().equals(id[1])) {
                    c.setStrjusti_colab(texto);
                    break;
                }
            }
        }
        else{//TENGO QUE LLENAR LA JUSTIFICACION DEL EVALUADOR
            for (BeanCualificaciones c : lstcuali) {
                if (c.getStrID_Pilar_QK().equals(id[0]) && c.getStrid_Cualif_Q().equals(id[1])) {
                    c.setStrjusti_jefe(texto);
                    break;
                }
            }
        }
        System.out.println("Fin llenarTextoCompetencia");
        session.setAttribute("lstCuali", lstcuali);
        return null;
    }

    public ActionForward calificacionColaborador(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }
        System.out.println("Inicio calificacionColaborador");
        HttpSession session = request.getSession();
        String[] id = request.getParameter("id").split("-");
        int calificacion = Integer.parseInt(request.getParameter("texto"));
        int tipo = Integer.parseInt(request.getParameter("tipo"));
        List<BeanCualificaciones> lstcuali = new ArrayList<BeanCualificaciones>();
        lstcuali = (List<BeanCualificaciones>) session.getAttribute("lstCuali");
        if(tipo == 1){//TENGO QUE INGRESAR LA CALIFICACION DEL COLABORADOR
            for (BeanCualificaciones c : lstcuali) {
                if (c.getStrID_Pilar_QK().equals(id[1]) && c.getStrid_Cualif_Q().equals(id[2])) {
                    c.setCalificacionColaborador(calificacion);
                    break;
                }
            }
        }
         else{ // TENGO QUE INGRESAR LA CALIFICACION DEL EVALUADOR
            for (BeanCualificaciones c : lstcuali) {
                if (c.getStrID_Pilar_QK().equals(id[1]) && c.getStrid_Cualif_Q().equals(id[2])) {
                    c.setCalificacionJefe(calificacion);
                    break;
                }
            }
         }
        System.out.println("Fin calificacionColaborador");
        session.setAttribute("lstCuali", lstcuali);
        return null;
    }

    //FUNCIONES PARA LA EVALUACION INTEGRAL
    public ActionForward llenarComentarioIntegral(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        HttpSession session = request.getSession();
        String texto = request.getParameter("texto");
        int tipo = Integer.parseInt(request.getParameter("tipo"));//1 si es evaluado o 2 si es evaluador
        texto = validarCaracteres(texto);
        BeanIntegral beanIntegral = new BeanIntegral();
        if(session.getAttribute("evalIntegral") != null){
            beanIntegral = (BeanIntegral) session.getAttribute("evalIntegral");
        }
        if(tipo == 1){ //TENGO QUE LLENAR EL COMENTARIO DEL COLABORADOR
            beanIntegral.setComentarioEvaluado(texto);
        }
        else{
            if(tipo == 2){
                beanIntegral.setComentarioEvaluador(texto);
            }
            else{
                beanIntegral.setComentarioRevisor(texto);
            }
        }

        session.setAttribute("evalIntegral", beanIntegral);
        return null;
    }

    //FUNCIONES PARA EL PLAN DE ACCION
    public ActionForward llenarComentarioPlanAccion(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        HttpSession session = request.getSession();
        String texto = request.getParameter("texto");
        System.out.println("El texto es: " + texto);
        int tipo = Integer.parseInt(request.getParameter("tipo"));
        texto = validarCaracteres(texto);
        List<BeanPlanAccion> lstPlanAccion = new ArrayList<BeanPlanAccion>();
        BeanAcciones beanAcciones = new BeanAcciones();
        int aux = 0;

        if(session.getAttribute("lstPlanAccion") != null){
            lstPlanAccion = (List<BeanPlanAccion>) session.getAttribute("lstPlanAccion");
            beanAcciones = (BeanAcciones) session.getAttribute("beanAcciones");
        }
        texto = texto.trim();
            switch(tipo){
                case 1:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("01") && beanPlanAccion.getCorrelativo().equals("01")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setObjDesarrollo1(texto);
                                aux = 1;
                            }
                        }

                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("01");
                            beanPlanAccionAux.setCorrelativo("01");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setObjDesarrollo1(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;

                case 2:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("01") && beanPlanAccion.getCorrelativo().equals("02")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setObjDesarrollo2(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("01");
                            beanPlanAccionAux.setCorrelativo("02");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setObjDesarrollo2(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;

                case 3:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("01") && beanPlanAccion.getCorrelativo().equals("03")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setObjDesarrollo3(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("01");
                            beanPlanAccionAux.setCorrelativo("03");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setObjDesarrollo3(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;

                case 4:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("02") && beanPlanAccion.getCorrelativo().equals("01")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setAspDesarrollo1(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("02");
                            beanPlanAccionAux.setCorrelativo("01");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setAspDesarrollo1(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;

                case 5:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("02") && beanPlanAccion.getCorrelativo().equals("02")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setAspDesarrollo2(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("02");
                            beanPlanAccionAux.setCorrelativo("02");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setAspDesarrollo2(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;

                case 6:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("02") && beanPlanAccion.getCorrelativo().equals("03")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setAspDesarrollo3(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("02");
                            beanPlanAccionAux.setCorrelativo("03");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setAspDesarrollo3(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;
                case 7:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("03") && beanPlanAccion.getCorrelativo().equals("01")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setEjeAccion1(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("03");
                            beanPlanAccionAux.setCorrelativo("01");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setEjeAccion1(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;
                case 8:
                        for (BeanPlanAccion beanPlanAccion : lstPlanAccion) {
                            if(beanPlanAccion.getCodigo().equals("03") && beanPlanAccion.getCorrelativo().equals("02")){
                                beanPlanAccion.setTexto(texto);
                                beanAcciones.setEjeAccion2(texto);
                                aux = 1;
                            }
                        }
                        if(aux == 0){// NO EXISTE ESE OBJETO EN LA LISTA
                            BeanPlanAccion beanPlanAccionAux = new BeanPlanAccion();
                            beanPlanAccionAux.setCodigo("03");
                            beanPlanAccionAux.setCorrelativo("02");
                            beanPlanAccionAux.setTexto(texto);
                            beanAcciones.setEjeAccion2(texto);
                            lstPlanAccion.add(beanPlanAccionAux);
                        }
                        break;
            }

                session.setAttribute("beanAcciones", beanAcciones);
                session.setAttribute("lstPlanAccion", lstPlanAccion);
        return null;
    }
    
    public ActionForward llenarMovilidad(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        HttpSession session = request.getSession();

        int tipo = Integer.parseInt(request.getParameter("tipo"));
        System.out.println("El tipo es: " + tipo);
        BeanMovilidad beanMovilidad = new BeanMovilidad();

        if(session.getAttribute("movilidad") != null){
            beanMovilidad = (BeanMovilidad) session.getAttribute("movilidad");
        }

        switch(tipo){
        	case 1: beanMovilidad.setMovilidadUnidadOperativa("N");
        			beanMovilidad.setPreferenciaUnidadOperativa("");
        			break;
        			
        	case 2: beanMovilidad.setMovilidadUnidadOperativa("S");        			
        			break;
        			
        	case 3: beanMovilidad.setMovilidadPais("N");
        			beanMovilidad.setPreferenciaPais("");
        			break;
        			
        	case 4: beanMovilidad.setMovilidadPais("S");
        			break;
        }     

        session.setAttribute("movilidad", beanMovilidad);
                
        return null;
    }

    public ActionForward llenarPreferencias(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        if (Util.isSessionActiva(request)) {
            return mapping.findForward(Constantes.LOGIN);
        }

        HttpSession session = request.getSession();
        String texto = request.getParameter("preferencia");
        int tipo = Integer.parseInt(request.getParameter("tipo"));
        texto = validarCaracteres(texto);
        BeanMovilidad beanMovilidad = new BeanMovilidad();
        System.out.println("toy en el llenarPreferncia AJAX el tipo es: " + tipo + " y el texto es: " + texto);
        if(session.getAttribute("movilidad") != null){
        	beanMovilidad = (BeanMovilidad) session.getAttribute("movilidad");
        }

        texto = texto.trim();
            switch(tipo){
                case 1: beanMovilidad.setPreferenciaUnidadOperativa(texto);                        
                        break;

                case 2: beanMovilidad.setPreferenciaPais(texto);                       
                        break;
            }

                session.setAttribute("movilidad", beanMovilidad);                
        return null;
    }
}